﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Csla
{
    /// <summary>
    /// 一个有简单Move操作的集合
    /// </summary>
    internal interface ISimpleMovableCollection : ICollection
    {
        /// <summary>
        /// 把oldIndex上对应位置的元素移动到newIndex上去。
        /// 目的位置上的和中间的所有元素，都向oldIndex的方向移动一个位置。
        /// </summary>
        /// <param name="oldIndex"></param>
        /// <param name="newIndex"></param>
        void Move(int oldIndex, int newIndex);
        /// <summary>
        /// 把item移动到newIndex上去。
        /// 目的位置上的和中间的所有元素，都向oldIndex的方向移动一个位置。
        /// </summary>
        /// <param name="item">本集合中的某一个元素</param>
        /// <param name="newIndex"></param>
        void Move(object item, int newIndex);
    }
    internal interface ISimpleMovableCollection<T> : ISimpleMovableCollection
    {
        /// <summary>
        /// 把item移动到newIndex上去。
        /// 目的位置上的和中间的所有元素，都向oldIndex的方向移动一个位置。
        /// </summary>
        /// <param name="item"></param>
        /// <param name="newIndex"></param>
        void Move(T item, int newIndex);
    }
}
